DoCmd Echo 基本構文と引数の解説

DoCmd.Echo は Access VBA において、画面更新(描画)を一時的に無効にして処理を高速化するために使うメソッドです。大量の操作をユーザーに見せたくない場合や、処理中のチラつきを防止したいときに便利です。


目次

🔹 基本構文

DoCmd.Echo EchoOn, bstrStatusBarText

🔸 引数の解説

引数名説明
EchoOnBooleanTrue = 画面更新を有効(表示)/False = 無効(非表示)
bstrStatusBarTextString(省略可)EchoOn = False のときに表示するステータスバーのメッセージ(例:「処理中です…」など)

✅ 使用例:画面更新をオフにしてからバッチ処理

Sub UpdateData()
    DoCmd.Echo False, "データを更新中です..."
    
    ' 複数のデータ更新処理
    DoCmd.OpenQuery "qryUpdatePrices"
    DoCmd.OpenQuery "qryUpdateStock"

    DoCmd.Echo True
    MsgBox "更新が完了しました。"
End Sub

✅ 注意点

  • DoCmd.Echo False のあと、必ず True に戻すようにしてください。戻し忘れると画面がフリーズしたように見えます。
  • エラー時でも確実に True に戻すため、On ErrorFinally 処理を組み込むのが理想です。

✅ 補足

  • Echo メソッドは「画面描画制御専用」であり、処理のスピードそのものには影響しません
  • ステータスバーのテキストは Access の下部バーに一時表示されます(フォームやレポートには表示されません)。

よかったらシェアしてね!
目次